package cn.sumpu.app.coolsk.biz;


import java.util.List;

import cn.sumpu.app.coolsk.domain.AdminUser;
import cn.sumpu.app.coolsk.domain.Member;
import cn.sumpu.app.coolsk.domain.Order;
import cn.sumpu.app.coolsk.domain.OrderProduct;
import cn.sumpu.app.coolsk.domain.Product;
import cn.sumpu.app.coolsk.domain.Room;
import cn.sumpu.app.coolsk.domain.RoomPrice;
import cn.sumpu.app.coolsk.domain.Template;
import cn.sumpu.app.coolsk.domain.Ticket;
import cn.sumpu.app.coolsk.domain.TicketPrice;
import cn.sumpu.app.coolsk.exception.AppBusinessException;
import cn.sumpu.toolkit.common.page.PageModel;


public interface OrderBiz {
	public Order saveOrder(Order order,Product product, Integer count, Member member)throws AppBusinessException;
	
	public Order saveOrder(Order order,Ticket ticket,TicketPrice tprice,Integer count,Integer countC,Member member) throws AppBusinessException;
	
	public Order saveOrder(Order order,Room room,RoomPrice rprice,Integer count,Member member,String ldate) throws AppBusinessException;
	
	public void saveOrder(Order order,Member member) throws AppBusinessException;
	
	public Order getOrderById(String id)throws AppBusinessException;
	
	public List<OrderProduct> getOpList(String oid)throws AppBusinessException;
	
	public void payOrderSuc(Order order)throws AppBusinessException;
	
	public PageModel getOrderList(Integer page,Integer pagesize,Order order) throws AppBusinessException;
	
//	public boolean audiSuc(String orderId)throws AppBusinessException;
	
	public PageModel getOrderListByMemberId(Integer page, Integer pagesize, String memberId) throws AppBusinessException;
	
	/**
	 * 订单详情
	 * @param orderId 订单号
	 * @return
	 * @throws AppBusinessException
	 */
	public Order getOrderDtlById( String orderId) throws AppBusinessException;
	/**
	 * 修改订单
	 * @param order
	 * @throws AppBusinessException
	 */
	public void updateOrder(Order order,AdminUser user,String reason)throws AppBusinessException;
	/**
	 * 查询最近 的状态
	 * @param id
	 * @param user
	 * @throws AppBusinessException
	 */
	public void cancelOrderGQ(String id,AdminUser user,String reason)throws AppBusinessException;
	/**
	 * 保存日志
	 */
	public void saveOrderLogBypayOrder(Order order,Member member,String memo)throws AppBusinessException;
	/**
	 * 查询默认短信
	 */
	public List<Template> getTemplateList(String orderId)throws AppBusinessException;
	/**
	 * 查看日志
	 * @param page
	 * @param pagesize
	 * @param id
	 * @return
	 * @throws AppBusinessException
	 */
	public PageModel getOrderLogList(Integer page, Integer pagesize, String id) throws AppBusinessException;
	//
	public String chanelStatus(String status) throws AppBusinessException;
	//
	public boolean defineOrder(String orderId)throws AppBusinessException;
	public boolean cancelOrder(String orderId)throws AppBusinessException;
	public void islockorder(Order order) throws AppBusinessException;
}
